package migrate

import (
	"first/model"
	"gorm.io/gorm"
)
import "gorm.io/driver/mysql"

var DB *gorm.DB

// 在 Go 语言中，如果函数、变量或类型以小写字母开头，则它们在包外是不可见的，
// 这被称为 “unexported” 或 “private”。这意味着您不能从其他包中直接调用这些未导出的标识符。
func InitDB() *gorm.DB {
	// DSN (Data Source Name) 格式: "用户名:密码@tcp(地址:端口)/数据库?charset=utf8mb4&parseTime=True&loc=Local"
	dsn := "root:123456@tcp(127.0.0.1:3307)/go?charset=utf8mb4&parseTime=True&loc=Local"
	var err error
	DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		var x any = "failed to connect database"
		panic(x)
	}

	// 自动迁移模式
	DB.AutoMigrate(&model.User{})
	return DB
}